package com.time.admin.application.converter;

import com.time.admin.application.dto.CacheKeyItemDTO;
import com.time.admin.application.dto.CacheMetricsDTO;
import com.time.admin.domain.entity.CacheKeyItemBO;
import com.time.admin.domain.entity.CacheMetricsBO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;

import java.util.List;

/**
 * 缓存管理DTO转换类
 *
 * @author: HuangQi
 * @date: Created in 2025/01/XX
 * @description: 缓存管理DTO转换类
 */
@Mapper
public interface CacheAdminDTOConverter {

    CacheAdminDTOConverter INSTANCE = Mappers.getMapper(CacheAdminDTOConverter.class);

    /**
     * 缓存统计BO转DTO
     *
     * @param bo 缓存统计BO
     * @return 缓存统计DTO
     */
    CacheMetricsDTO toDTO(CacheMetricsBO bo);

    /**
     * 缓存键条目BO转DTO
     *
     * @param bo 缓存键条目BO
     * @return 缓存键条目DTO
     */
    CacheKeyItemDTO toDTO(CacheKeyItemBO bo);

    /**
     * 缓存键条目BO列表转DTO列表
     *
     * @param list 缓存键条目BO列表
     * @return 缓存键条目DTO列表
     */
    List<CacheKeyItemDTO> toDTOList(List<CacheKeyItemBO> list);
}


